import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';

abstract class BaseState<T extends StatefulWidget> extends State<T> {
  ///安全更新
  void updateState(VoidCallback fn) {
    final schedulerPhase = SchedulerBinding.instance.schedulerPhase;
    if (schedulerPhase == SchedulerPhase.persistentCallbacks) {
      SchedulerBinding.instance.addPostFrameCallback((_) {
        setState(fn);
      });
    } else {
      setState(fn);
    }
  }
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }
  //
  // @override
  // void activate() {
  //   // TODO: implement activate
  //   super.activate();
  // }
  //
  // @override
  // void didChangeDependencies() {
  //   // TODO: implement didChangeDependencies
  //   super.didChangeDependencies();
  // }
  //
  // @override
  // void deactivate() {
  //   // TODO: implement deactivate
  //   super.deactivate();
  // }
  //
  // @override
  // void didUpdateWidget(covariant T oldWidget) {
  //   // TODO: implement didUpdateWidget
  //   super.didUpdateWidget(oldWidget);
  // }
  //
  // @override
  // void reassemble() {
  //   // TODO: implement reassemble
  //   super.reassemble();
  // }
  //
  // @override
  // void dispose() {
  //   // TODO: implement dispose
  //   super.dispose();
  // }
}
